/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package analisadorlexico;

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author DEP
 */
public class PalavrasReservadas {

    private List<String> palavrasReservadas;
    private static PalavrasReservadas instance;

    private PalavrasReservadas() {
        palavrasReservadas = new ArrayList<>();
        palavrasReservadas.add("programa");
        palavrasReservadas.add("var");
        palavrasReservadas.add("constante");
        palavrasReservadas.add("inteiro");
        palavrasReservadas.add("real");
        palavrasReservadas.add("boleano");
        palavrasReservadas.add("char");
        palavrasReservadas.add("string");
        palavrasReservadas.add("procedimento");
        palavrasReservadas.add("funcao");
        palavrasReservadas.add("inicio");
        palavrasReservadas.add("fim");
        palavrasReservadas.add("se");
        palavrasReservadas.add("entao");
        palavrasReservadas.add("senao");
        palavrasReservadas.add("enquanto");
        palavrasReservadas.add("faca");
        palavrasReservadas.add("repita");
        palavrasReservadas.add("ate");
        palavrasReservadas.add("verdadeiro");
        palavrasReservadas.add("pare");
        palavrasReservadas.add("continua");
        palavrasReservadas.add("falso");
        palavrasReservadas.add("ou");
        palavrasReservadas.add("e");
    }

    public static PalavrasReservadas getInstance() {
        if (instance == null) {
            instance = new PalavrasReservadas();
        }
        return instance;
    }

    public boolean isPalavraReservada(String token) {
        for (String s : palavrasReservadas) {
            if (s.compareToIgnoreCase(token) == 0) {
                return true;
            }
        }
        return false;
    }
}